package cn.bandeqing.order.rpc;

import cn.bandeqing.base.resp.Resp;
import cn.bandeqing.base.resp.Table;
import cn.bandeqing.finance.resp.LabelValue;
import cn.bandeqing.finance.resp.ProductSpecificationsSelect;
import cn.bandeqing.order.req.*;
import cn.bandeqing.order.resp.*;

import java.util.List;

public interface IOrderRpc {

    Resp<Table<OrderTable>> table(OrderTableReq req);

    void saveOrUpdate(OrderSaveOrUpdateReq req);

    Resp<OrderDetailResp> detail(OrderDetailReq req);

    Resp<Void> modifyStatus(OrderModifyStatusReq req);

    Resp<Table<OrderDiscountsTable>> discountsTable(OrderDiscountsTableReq req);

    Resp<OrderPriceDetails> discountsSave(OrderDiscountsSaveReq req);

    Resp<Table<OrderProductTable>> productTable(OrderProductTableReq req);

    Resp<OrderPriceDetails> productSave(OrderProductSaveReq req);

    Resp<List<LabelValue>> productSelect(OrderProductSelectReq req);

    Resp<List<LabelValue>> productSpecificationsSelect(OrderProductSpecificationsSelectReq req);

    Resp<OrderPriceDetails> productRemove(OrderProductRemoveReq req);

    Resp<Void> douyinVerify(DouyinVerifyReq req);

    Resp<Void> orderDouyinVerify(OrderDouyinVerifyReq req);

    Resp<Void> cancelDouyin(CancelDouyinReq req);

}
